Link to this headingx86

Variable with instruction set from 1 byte to 15 bytes

Weird x86 instructions caviots https://www.timdbg.com/posts/useless-x86-trivia/

Link to this headingEmulate with Unicorn

code = bytes.fromhex('b8 02 00 00 00 bb 03 00 00 00 03 c3') from unicorn import * from unicorn.x86_const import * # Unicorn emulator setup uc = Uc(UC_ARCH_X86, UC_MODE_32) stack_base = 0x00100000 stack_size = 0x00100000 # Position the stack pointer in the middle of the stack ESP = stack_base + (stack_size // 2) # Map the stack memory into the emulator uc.mem_map(stack_base, stack_size) # Fill the stack memory with null bytes uc.mem_write(stack_base, b"\x00" * stack_size) # Set the stack pointer uc.reg_write(UC_X86_REG_ESP, ESP) target_base = 0x00400000 target_size = 0x00100000 # Map target memory with r/w/x permissions uc.mem_map(target_base, target_size, UC_PROT_ALL) # Fill the target memory with null bytes uc.mem_write(target_base, b"\x00" * target_size) # Write our code into the target memory uc.mem_write(target_base, code) target_end = target_base + len(code) uc.emu_start(target_base, target_end, timeout=0, count=0) print("done") EAX = uc.reg_read(UC_X86_REG_EAX) print(EAX)